The following relates to the online retail arts, online service provider arts, recommender system arts, collaborative filtering arts, and related arts.
Recommender systems find application in numerous retail and service applications, among other. A recommender system attempts to predict the preferences or choices of a user, and can be used, by way of illustrative example, to provide recommendations to a user from amongst a catalog of items or services. For example, an online retailer provides a website via which a user (i.e., customer) browses the retailer's catalog of products or services. The retailer desires for the customer to identify products or services for purchase. Toward that end, it is useful for the retailer to be able to automatically identify and present to the customer specific products or services that the customer is likely to want to purchase. The recommender system, in this application, identifies products or services that are likely to be of interest to the customer, and these products are recommended to the customer.
One way to generate such recommendations is based on products or services which the customer has previously viewed or actually purchased. However, this approach assumes that there is a substantial past history of browsing or purchasing available for the customer. This will not be the case for new or infrequent customers, and also will not be the case for existing customers who have not been identified as such by the retailer's online catalog (e.g., by the customer logging into the website or by reading a “cookie” or other identifying information available on the customer's computer). Moreover, even if a substantial past history is available for the customer, it may not be useful for prediction if the customer is browsing in some portion of the online catalog that the customer has not previously visited.
Collaborative filtering is a recommender approach that makes predictions for a given user based on collected information about preferences of many other users. Conceptually, collaborative filtering is based on expectation that, for a given user, the choices of other users whose past history is similar to that of given user is likely to be probative for predicting the preferences or choices of the given user. Collaborative filtering can utilize a database of product ratings provided for various products or services by users of the retailer's product catalog.
A difficulty with collaborative filtering is that the available data is typically sparse. Using the example of a user ratings database, most users have never viewed or purchased most products of the catalog (let alone gone to the effort of inputting a rating for the product). Additionally, the ratings data is typically noisy. For example, in a rating system employing a one-to-five star scale, there is substantial subjectivity as to whether a given customer rates a product as “four stars” or “three stars” (or “three-and-a-half stars”, if fractions are allowable). Some users have a tendency to rate more negatively, while others tend to rate more positively. Different users also consider different criteria in rating a product or service. Still further, the ratings data may have substantial outlier content. For example, a customer who receives a defective product may rate the product as “one star” due to the experience of receiving a defective product, even though the product in general may be quite reliable and satisfactory for most customers.
In many collaborative filtering applications, the available data is amenable to representation in a matrix data structure. For example, product ratings can be represented as a two-dimensional matrix in which the rows correspond to customers and the columns correspond to products (or vice versa). In this representation, Probabilistic Matrix Factorization (PMF) is a known technique for performing collaborative filtering. PMF has some ability to handle difficulties such as noise and outliers. However, improved techniques that provide enhanced robustness would be advantageous.